home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 23
/
Amiga Format AFCD23 (Feb 1998, Issue 107).iso
/
-seriously_amiga-
/
shareware
/
programming
/
other
/
hunk
/
hoppers
/
lattice.hop
< prev
next >
Wrap
Text File
|
1997-12-01
|
7KB
|
167 lines
;*************************************************************************
;** Lattice **
;** Contributor: L.Lucius Sept 23rd 1995 **
;** Modified for HOp: Thomas Richter (thor) Nov 1st 1997 **
;** Function: Modify 68000 math routines to use 68020+ instructions. **
;*************************************************************************
;*************************************************************************
;
; DIVS
;
#match
#code
48E7 3C00 ; MOVEM.L D2-D5,-(A7)
2A01 ; MOVE.L D1,D5
6732 ; BEQ.B 003A
6A02 ; BPL.B 000C
4481 ; NEG.L D1
2800 ; MOVE.L D0,D4
6728 ; BEQ.B 0038
6A02 ; BPL.B 0014
4480 ; NEG.L D0
4282 ; CLR.L D2
761F ; MOVEQ #1F,D3
E380 ; ASL.L #1,D0
E392 ; ROXL.L #1,D2
B481 ; CMP.L D1,D2
6504 ; BCS.B 0024
9481 ; SUB.L D1,D2
5280 ; ADDQ.L #1,D0
51CB FFF2 ; DBF D3,0018
2202 ; MOVE.L D2,D1
B985 ; EOR.L D4,D5
6A02 ; BPL.B 0030
4480 ; NEG.L D0
B384 ; EOR.L D1,D4
6A08 ; BPL.B 003C
4481 ; NEG.L D1
6004 ; BRA.B 003C
4281 ; CLR.L D1
4280 ; CLR.L D0
4CDF 003C ; MOVEM.L (A7)+,D2-D5
4E75 ; RTS
;
;
#replace
4C41 0801 ; DIVSL.L D1,D1:D0
4E75 ; RTS
#end
;*************************************************************************
;
; DIVU/MODU
;
#match
#code
2F02 ; MOVE.L D2,-(A7)
2F03 ; MOVE.L D3,-(A7)
4A81 ; TST.L D1
6722 ; BEQ.B 002A
4A80 ; TST.L D0
671C ; BEQ.B 0028
4282 ; CLR.L D2
761F ; MOVEQ #1F,D3
E380 ; ASL.L #1,D0
E392 ; ROXL.L #1,D2
B481 ; CMP.L D1,D2
6508 ; BCS.B 0020
9481 ; SUB.L D1,D2
D0BC 0000 0001 ; ADD.L #00000001,D0
51CB FFEE ; DBF D3,0010
2202 ; MOVE.L D2,D1
6004 ; BRA.B 002C
4281 ; CLR.L D1
4280 ; CLR.L D0
261F ; MOVE.L (A7)+,D3
241F ; MOVE.L (A7)+,D2
4E75 ; RTS
;
;
#replace
4C41 0001 ; DIVUL.L D1,D1:D0
4E75 ; RTS
#end
;*************************************************************************
;
; MULS
;
#match
#code
48E7 7800 ; MOVEM.L D1-D4,-(A7)
2800 ; MOVE.L D0,D4
B384 ; EOR.L D1,D4
4A80 ; TST.L D0
6730 ; BEQ.B 003C
6A02 ; BPL.B 0010
4480 ; NEG.L D0
2400 ; MOVE.L D0,D2
4A81 ; TST.L D1
6604 ; BNE.B 001A
4280 ; CLR.L D0
6022 ; BRA.B 003C
6A02 ; BPL.B 001E
4481 ; NEG.L D1
2600 ; MOVE.L D0,D3
C6C1 ; MULU.W D1,D3
4842 ; SWAP D2
C4C1 ; MULU.W D1,D2
4842 ; SWAP D2
4242 ; CLR.W D2
D682 ; ADD.L D2,D3
4841 ; SWAP D1
C0C1 ; MULU.W D1,D0
4840 ; SWAP D0
4240 ; CLR.W D0
D083 ; ADD.L D3,D0
4A84 ; TST.L D4
6A02 ; BPL.B 003C
4480 ; NEG.L D0
4CDF 001E ; MOVEM.L (A7)+,D1-D4
4E75 ; RTS
;
;
#replace
4C01 0800 ; MULS.L D1,D0
4E75 ; RTS
#end
;*************************************************************************
;
; MULU
;
#match
#code
48E7 7000 ; MOVEM.L D1-D3,-(A7)
2400 ; MOVE.L D0,D2
6720 ; BEQ.B 0028
4A81 ; TST.L D1
6604 ; BNE.B 0010
4280 ; CLR.L D0
6018 ; BRA.B 0028
2600 ; MOVE.L D0,D3
C6C1 ; MULU.W D1,D3
4842 ; SWAP D2
C4C1 ; MULU.W D1,D2
4842 ; SWAP D2
4242 ; CLR.W D2
D682 ; ADD.L D2,D3
4841 ; SWAP D1
C0C1 ; MULU.W D1,D0
4840 ; SWAP D0
4240 ; CLR.W D0
D083 ; ADD.L D3,D0
4CDF 000E ; MOVEM.L (A7)+,D1-D3
4E75 ; RTS
;
;
#replace
4C01 0000 ; MULU.L D1,D0
4E75 ; RTS
#end